home *** CD-ROM | disk | FTP | other *** search
- Path: mujibur.inmind.com!usenet
- From: mfinney@inmind.com
- Newsgroups: comp.std.c
- Subject: Re: Help, best way to compare doubles
- Date: 17 Jan 1996 21:41:42 GMT
- Organization: In Mind, Inc.
- Message-ID: <4djqem$9th@mujibur.inmind.com>
- References: <4d1k09$aqq@mercury.IntNet.net> <4dbos6$o7q@umbc9.umbc.edu> <mlK/wQ9ytpDN084yn@csn.net>
- Reply-To: mfinney@inmind.com
- NNTP-Posting-Host: finneyman.inmind.com
- X-Newsreader: IBM NewsReader/2 v1.2
-
- In <mlK/wQ9ytpDN084yn@csn.net>, thads@csn.net (Thad Smith) writes:
- >In article <4ddev4$1vg@stingray.mcnc.org>,
- >coats@mcnc.org (Carlie Coats) wrote:
- >
- >>>14.5: What's a good way to check for "close enough" floating-point
- >>> equality?
- >
- >> A safer test is of the form
- >>
- >> | a - b | / sqrt( a^2 + b^2 + delta ) < epsilon
- >
- >This criteria, plus the squared version which uses squares, seems
- >to be too much effort with no payback.
-
- Check out "The Art of Computer Programming" by Donald Knuth,
- Volume 2 "Seminumerical Alogrithms" starting on page 213 (2nd
- edition) the section "4.2.2 Accuracy of Floating Point Arithmetic".
-
- Knuth expounds on a bit of theory (easily followed) and the winds
- up with very precise methods for floating point comparision and
- the properties that hold. You really need to read the section to
- fully understand the formulae. But it seems to be reasonably
- definitive, outside of possible special application considerations.
-
- BTW, none of the methods suggested so far are the ones that
- Knuth recommends.
-
-
- Michael Lee Finney
-
-